package com.chain.BrotherExchange.utils;

import java.security.MessageDigest;

/**
 * 加密
 */
public class EncryptionUtils {

    /**
     * 取消委托订单签名
     */
    public static String generateCancelOrderSign(int uid, String token, String id, String nonce) {
        return Sha1("entrust_id=" + id + "&" + "nonce_str="
                + nonce + "&" + "token=" + token + "&" + "uid=" + uid + "&key=" + "pfdsapowmsapa");
    }

    /**
     * 委托订单签名
     * A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z
     */
    public static String generateEntrustOrdersSign(
            int uid, String token, String symbol, int opt, double on_price, int type, double num,
            String nonce_str) {

        return Sha1("num=" + num + "&nonce_str=" + nonce_str + "&opt=" + opt + "&on_price=" + on_price
                + "&token=" + token + "&type=" + type + "&symbol=" + symbol + "&uid=" + uid);
    }

    /**
     * 法币待放行
     */
    public static String orderRelease(int uid, String token, int id, String pay_pwd, String nonce_str) {

        return Sha1("id=" + id + "&nonce_str=" + nonce_str + "&pay_pwd=" + pay_pwd
                + "&token=" + token + "&uid=" + uid + "&key=" + "pfdsapowmsapa");
    }

    private static String Sha1(String str) {
        if (str == null || str.length() == 0) {
            return null;
        }
        char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'a', 'b', 'c', 'd', 'e', 'f'};
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));

            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
                buf[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(buf);
        } catch (Exception e) {
            return null;
        }
    }
}
